home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 1 (Walnut Creek)
/
Aminet - June 1993 [Walnut Creek].iso
/
usenet
/
sources
/
volume2
/
libraris
/
gimme.7
< prev
next >
Wrap
Text File
|
1988-12-02
|
39KB
|
1,192 lines
Path: xanth!mcnc!gatech!bloom-beacon!mit-eddie!ll-xn!adelie!infinet!ulowell!page
From: page@swan.ulowell.edu (Bob Page)
Newsgroups: comp.sources.amiga
Subject: v02i080: gimme.lib - misc library routines, Part07/07
Message-ID: <10418@swan.ulowell.edu>
Date: 2 Dec 88 01:05:06 GMT
Organization: University of Lowell, Computer Science Dept.
Lines: 1181
Approved: page@swan.ulowell.edu
Submitted-by: oscvax!jan@uunet.UU.NET (Jan Sven Trabandt)
Posting-number: Volume 2, Issue 80
Archive-name: libraries/gimme.7
# This is a shell archive.
# Remove everything above and including the cut line.
# Then run the rest of the file through sh.
#----cut here-----cut here-----cut here-----cut here----#
#!/bin/sh
# shar: Shell Archiver
# Run the following text with /bin/sh to create:
# bitplane.h
# color.h
# communic.h
# copystuff.h
# debug.h
# gadget.h
# gimNOshortdefs.h
# gimmeall.h
# gimmefuncs.h
# gimshortdefs.h
# globals.h
# graph.h
# intuistuff.h
# macros.h
# menustuff.h
# minterm.h
# picture.h
# postext.h
# requester.h
# scrollbar.h
# sound.h
# stdstuff.h
# window.h
# This archive created: Thu Dec 1 19:30:07 1988
cat << \SHAR_EOF > bitplane.h
#ifndef GIMMELIB_BITPLANE_H
#define GIMMELIB_BITPLANE_H
/* flags for gimmeBitPlanes() */
#define GBP_SEPARATE (1L << 0) /* separate bitplanes */
#define GBP_CONTIGUOUS (1L << 1) /* make bitplanes contiguous */
/* default (can be 0L too): try contiguous first, then separate */
#define GBP_DEFAULT (GPIC_CONTIGUOUS | GPIC_SEPARATE)
/* error return flag */
#define GBP_ERROR 0xFF000000L /* unable to get planes */
#endif !GIMMELIB_BITPLANE_H
SHAR_EOF
cat << \SHAR_EOF > color.h
#ifndef GIMMELIB_COLOR_H
#define GIMMELIB_COLOR_H
#define DFLT_MAX_COLORS 16
#ifdef I_AM_COLOR
static USHORT gimColorTable[DFLT_MAX_COLORS] = {
0x002, 0xaaa, 0x900, 0x039,
0x2c2, 0xbb0, 0x0ff, 0xf0f,
0x620, 0xe50, 0x9f1, 0xeb0,
0x92f, 0x55f, 0x0f8, 0xeee
};
#endif I_AM_COLOR
#define GIM_BACKGROUND 0
#define GIM_BLACK 0
#define GIM_WHITE 1
#define GIM_RED 2
#define GIM_BLUE 3
#define GIM_GREEN 4
#define GIM_YELLOW 5
#define GIM_CYAN 6
#define GIM_MAGENTA 7
#define GIM_DRED 8
#define GIM_ORANGE 9
#define GIM_LGREEN 10
#define GIM_MUSTARD 11
#define GIM_PURPLE 12
#define GIM_LBLUE 13
#define GIM_MINT 14
#define GIM_LWHITE 15
#endif !GIMMELIB_COLOR_H
SHAR_EOF
cat << \SHAR_EOF > communic.h
#ifndef GIMMELIB_COMMUNIC_H
#define GIMMELIB_COMMUNIC_H
#ifdef I_AM_COMMUNIC
/* internal constants */
#ifndef MILLION
#define MILLION 1000000L
#endif
#define SMALL_SECS 0L /* "small" time-out */
#define SMALL_MICROS (MILLION / 2)
#define BIG_SECS 2L /* "large" time-out */
#define BIG_MICROS 0L
#define DEFAULT_EOL 0x0d /* CR */
#endif I_AM_COMMUNIC
/* Constants used for setup parameters */
#define C_SER_7 1 /* 7 wire handshaking */
#define C_SER_3 2 /* 3 wire XON/XOFF handshaking */
#define C_NO_PARITY 1 /* No parity */
#define C_EVEN_PARITY 2 /* Even parity */
#define C_ODD_PARITY 3 /* Odd parity */
/* Setup parameter structure */
typedef struct c_parameters {
WORD C_MODE; /* Mode of communications to be used */
WORD C_BAUD;
WORD C_STOP;
WORD C_PARITY;
WORD C_RLEN;
WORD C_WLEN;
} SERPARMS;
/* Error Condition values */
#define C_ERR_OK 0 /* No error occured */
#define C_ERR_INITIAL 1 /* System not initialized */
#define C_ERR_OPEN 2 /* Channel already opened */
#define C_ERR_CANT 3 /* Can't open channel */
#define C_ERR_PARAMS 4 /* Can't set parameters as specified */
#define C_ERR_CHAN 5 /* Channel not open */
#define C_ERR_GET 6 /* Timeout before character recieved */
#define C_ERR_PUT 7 /* Can't send character */
#define C_ERR_PARITY 8 /* Parity specified is not valid */
#define C_ERR_ILLEGAL 9 /* Illegal length parameter for get/put s */
#define C_ERR_BADPARM 10 /* Invalid parameter given to routine */
#ifndef I_AM_COMMUNIC
extern short c_error; /* error number of last communic routine */
#endif !I_AM_COMMUNIC
#endif !GIMMELIB_COMMUNIC_H
SHAR_EOF
cat << \SHAR_EOF > copystuff.h
#ifndef GIMMELIB_COPYSTUFF_H
#define GIMMELIB_COPYSTUFF_H
/* flags for various copy routines */
#define GCP_NOT_ITEXT (1L << 1) /* don't copy IntuiText struct(s) */
#define GCP_NOT_IMAGE (1L << 2) /* don't copy Image struct(s) */
#define GCP_NOT_STRING (1L << 8) /* don't copy actual string */
#define GCP_NOT_BYTES (1L << 9) /* don't copy (image) byte data */
#define GCP_NOT_POINTS (1L << 10) /* don't copy (border) points data */
#define GCP_NOT_TEXTATTR (1L << 11) /* don't copy (itext) textattr */
#define GCP_NOT_STRUCTS (0x000ffL) /* don't copy "sub-structures" */
#define GCP_NOT_DATA (0x0ff00L) /* don't copy "low-level" data */
#define GCP_SALVAGE (1L << 16) /* try to copy as much as possible */
#define GCP_DEFAULT (0L) /* copy everything */
#endif !GIMMELIB_COPYSTUFF_H
SHAR_EOF
cat << \SHAR_EOF > debug.h
#ifndef GIMMELIB_DEBUG_H
#define GIMMELIB_DEBUG_H
#ifdef DEBUG
#define DEBUGCMD(c) c
#define DEBUGMSG(c) printf(c)
#define DEBUGMSG1(c,p) printf(c,p)
#define DEBUGMSG2(c,p1,p2) printf(c,p1,p2)
#define DEBUGMSG3(c,p1,p2,p3) printf(c,p1,p2,p3)
#define DEBUGMSG4(c,p1,p2,p3,p4) printf(c,p1,p2,p3,p4)
#ifndef OWNDEBUG
/* doPrintf parms: process-port, reply-port, c, p1, p2, p3, p4
* note regarding reply-port: if it is NULL, then the printf might not get
* done before a crash since doPrintf will not wait for a reply to make
* sure that the printf was done
* THIS VERSION uses gimMainPort as a default port, so it had better be there!!
*/
/* subtask debug message */
#define STDEBUGMSG(c) doPrintf(gimMainPort,NULL,c,0,0,0,0)
#define STDEBUGMSG1(c,p) doPrintf(gimMainPort,NULL,c,p,0,0,0)
#define STDEBUGMSG2(c,p1,p2) doPrintf(gimMainPort,NULL,c,p1,p2,0,0,0)
#define STDEBUGMSG3(c,p1,p2,p3) doPrintf(gimMainPort,NULL,c,p1,p2,p3,0)
#define STDEBUGMSG4(c,p1,p2,p3,p4) doPrintf(gimMainPort,NULL,c,p1,p2,p3,p4)
#endif !OWNDEBUG
#else
#define DEBUGCMD(c)
#define DEBUGMSG(c)
#define DEBUGMSG1(c,p)
#define DEBUGMSG2(c,p1,p2)
#define DEBUGMSG3(c,p1,p2,p3)
#define DEBUGMSG4(c,p1,p2,p3,p4)
#define STDEBUGMSG(c)
#define STDEBUGMSG1(c,p)
#define STDEBUGMSG2(c,p1,p2)
#define STDEBUGMSG3(c,p1,p2,p3)
#define STDEBUGMSG4(c,p1,p2,p3,p4)
#endif else !DEBUG
#endif !GIMMELIB_DEBUG_H
SHAR_EOF
cat << \SHAR_EOF > gadget.h
#ifndef GIMMELIB_GADGET_H
#define GIMMELIB_GADGET_H
#include "gimmelib/postext.h"
/***
flags for gimmeBoolGadget()
==> see flags for positionText() in <gimmelib/postext.h>
NOTE: the default flags are as follows (use the appropriate flags or 0L):
x : left
y : top
***/
#ifdef I_AM_GADGET
/* internal spacing for gadgets */
#define HORIZ_SPACE 5
#define VERT_SPACE 2
#define AROUND_SPACE 1
#endif I_AM_GADGET
/* size of string gadget's undo buffer */
#define GIM_DFLT_UNDO_BUF_SIZE 81
#endif !GIMMELIB_GADGET_H
SHAR_EOF
cat << \SHAR_EOF > gimNOshortdefs.h
#ifndef GIMMELIB_NO_SHORT_DEFS_H
#define GIMMELIB_NO_SHORT_DEFS_H
#ifdef GIMMELIB_SHORT_DEFS_H
#undef SCREEN
#undef WINDOW
#undef NEWSCREEN
#undef NEWWINDOW
#undef BITMAP
#undef RASTPORT
#undef TEXTATTR
#undef REQUESTER
#undef GADGET
#undef BORDER
#undef STRINGINFO
#undef PROPINFO
#undef IMSG
#undef ITEXT
#undef IMAGE
#undef MSGPORT
#undef MESSAGE
#undef TASK
#undef RASINFO
#undef TEXTFONT
#undef TIMEVAL
#undef TIMEREQ
#undef CPRLIST
#undef AREAINFO
#undef TMPRAS
#undef IOREQUEST
#undef IOSTDREQ
#undef MENU
#undef MENUITEM
#undef GIMMELIB_SHORT_DEFS_H
#endif GIMMELIB_SHORT_DEFS_H
#endif !GIMMELIB_NO_SHORT_DEFS_H
SHAR_EOF
cat << \SHAR_EOF > gimmeall.h
#ifndef GIMMELIB_ALL_H
#define GIMMELIB_ALL_H
#include "gimmelib/gimmefuncs.h"
/* #include "gimmelib/gimshortdefs.h" */
/* #include "gimmelib/gimeNOshortdefs.h" */
/* #include "gimmelib/macros.h" */
/* #include "gimmelib/debug.h" */
#include "gimmelib/bitplane.h"
#include "gimmelib/color.h"
#include "gimmelib/communic.h"
#include "gimmelib/copystuff.h"
#include "gimmelib/gadget.h"
#include "gimmelib/globals.h"
#include "gimmelib/graph.h"
#include "gimmelib/intuistuff.h"
#include "gimmelib/menustuff.h"
#include "gimmelib/minterm.h"
#include "gimmelib/picture.h"
#include "gimmelib/postext.h"
#include "gimmelib/requester.h"
#include "gimmelib/scrollbar.h"
#include "gimmelib/sound.h"
#include "gimmelib/stdstuff.h"
#include "gimmelib/window.h"
#endif !GIMMELIB_ALL_H
SHAR_EOF
cat << \SHAR_EOF > gimmefuncs.h
#ifndef GIMMELIB_FUNCTIONS_H
#define GIMMELIB_FUNCTIONS_H
#include <exec/types.h>
#include <intuition/intuition.h>
#include <exec/memory.h>
#ifdef AZTEC_C
#include <functions.h>
#endif AZTEC_C
/* short defines for system structs used below */
#include "gimmelib/gimshortdefs.h"
/* these ones have custom structs */
#include "gimmelib/sound.h"
#include "gimmelib/picture.h"
#include "gimmelib/graph.h"
#include "gimmelib/communic.h"
/* bitmap.c */
BITMAP * gimmeBitMap(/* SHORT depth, SHORT width, SHORT height */);
short getRidOfBitMap(/* BITMAP* */);
/* bitplane.c (bitplane.h) */
ULONG gimmeBitPlanes(/* BITMAP*, ULONG myflags */);
short getRidOfBitPlanes(/* BITMAP*, ULONG myflags */);
/* color.c (color.h) */
USHORT * getDefaultColors();
short setColors(/* SCREEN*, USHORT* ctable, SHORT colors */);
short checkColors(/* SCREEN*, SHORT colors */);
/* communic.c (communic.h) */
short c_init();
short c_done();
short c_open(/* SERPARMS* */);
short c_setup(/* SERPARMS* */);
short c_close();
short c_emptyc();
short c_getc(/* char* */);
short c_gets(/* char*, SHORT num */);
short c_getline(/* char*, SHORT num */);
short c_setEOL(/* char */);
short c_putc(/* char */);
short c_puts(/* char*, SHORT num */);
/* copystuff.c (copystuff.h) */
BORDER * copyBorder(/* void** memheadptr, BORDER*, SHORT numbord,
ULONG myflags */);
IMAGE * copyImage(/* void** memheadptr, IMAGE*, SHORT numimage,
ULONG myflags */);
short copyDataImage(/* USHORT* srcdata, IMAGE* */);
short copyImageData(/* IMAGE*, USHORT* destdata */);
ITEXT * copyIntuiText(/* void** memheadptr, ITEXT*, SHORT numitext,
ULONG myflags */);
MENU * copyMenu(/* void** memheadptr, MENU*, SHORT nummenu, SHORT numitem,
SHORT numsub, ULONG myflags */);
MENUITEM * copyMenuItem(/* void** memheadptr, MENU*, SHORT numitem,
SHORT numsub, ULONG myflags */);
/* dbuf.c (minterm.h) */
short makeDBuf(/* SCREEN*, BITMAP** bmptr */);
short unmakeDBuf(/* SCREEN*, BITMAP** bmptr, BITMAP* */);
short swapDBuf(/* SCREEN*, SHORT minterm */);
/* dbufquick.c (minterm.h) */
short makeDBufQuick(/* SCREEN*, BITMAP** bmptr, CPRLIST** lcpr,
CPRLIST** scpr */);
short unmakeDBufQuick(/* SCREEN*, BITMAP** bmptr, BITMAP*,
CPRLIST** lcpr, CPRLIST** scpr */);
short swapDBufQuick(/* SCREEN*, SHORT minterm, CPRLIST** lcpr,
CPRLIST** scpr */);
/* dbufvquick.c (minterm.h) */
short makeDBufVQuick(/* SCREEN*, BITMAP** bmptr */);
short unmakeDBufVQuick(/* SCREEN*, BITMAP** bmptr, BITMAP* */);
short swapDBufVQuick(/* SCREEN*, SHORT minterm */);
/* dualpf.c */
short makeDualPlayfield(/* SCREEN*, RASINFO*, SHORT depth */);
short unmakeDualPlayfield(/* SCREEN* */);
/* font.c */
TEXTFONT * gimmeFont(/* TEXTATTR* */);
TEXTFONT * gimmeFontLazy(/* UBYTE *name, UWORD size */);
short getRidOfFont(/* TEXTFONT* */);
/* gadget.c (gadget.h) */
GADGET * gimmeBoolGadget(/* WINDOW*, USHORT id, SHORT left, SHORT top,
SHORT xsize, SHORT ysize, UBYTE* s, UBYTE* s2,
TEXTATTR*, ULONG myflags */);
GADGET * gimmeBoolImageGadget(/* WINDOW*, USHORT id, SHORT left, SHORT top,
SHORT depth, SHORT width, SHORT height,
ULONG myflags, SHORT dep2, SHORT wid2,
SHORT ht2 */);
GADGET * gimmePropGadget(/* WINDOW*, USHORT id, SHORT left, SHORT top,
SHORT xsize, SHORT ysize, UBYTE* label,
TEXTATTR*, ULONG activflags, ULONG propflags */);
PROPINFO * gimmePropInfo(/* void** memheadptr, ULONG flags */);
GADGET * gimmeStringGadget(/* WINDOW*, USHORT id, SHORT left, SHORT top,
SHORT width, SHORT maxbuf, UBYTE* initstr,
UBYTE* label, TEXTATTR*, ULONG activflags */);
STRINGINFO *gimmeStringInfo(/* void** memheadptr, SHORT bufsize, UBYTE *s,
ULONG flags */);
short getRidOfGadgets(/* GADGET* firstgadget */);
/* gadgstuff.c */
short clearGadgets(/* GADGET* firstgadget, WINDOW*, REQUESTER*,
SHORT numgad */);
short toggleBoolGadget(/* WINDOW*, GADGET*, REQUESTER* */);
GADGET * findGadget(/* GADGET*, USHORT id */);
GADGET * findMyFirstGadget(/* WINDOW*, USHORT id */);
/* graph.c (graph.h) */
GRAPH * gimmeGraph(/* NEWGRAPH*, BITMAP*, AREAINFO*, TMPRAS* */);
short getRidOfGraph(/* GRAPH* */);
VOID clearGraph(/* GRAPH* */);
VOID resetGraph(/* GRAPH* */);
VOID drawGraphAxesOnly(/* GRAPH* */);
SHORT drawGraphAxes(/* GRAPH* */);
VOID drawGraphTitle(/* GRAPH*, SHORT xoff, SHORT yoff,
ULONG myflags */);
VOID drawGraphXtitle(/* GRAPH*, SHORT xoff, SHORT yoff,
ULONG myflags */);
VOID drawGraphYtitle(/* GRAPH*, SHORT xoff, SHORT yoff,
ULONG myflags */);
SHORT graphWriteLabel(/* GRAPH*, ULONG myflags, SHORT first, SHORT last,
SHORT step */);
VOID addToGraph(/* GRAPH*, x, y */);
/* inputhand.c */
IOSTDREQ * addInputHandler(/* void (*handler)(), APTR data, BYTE pri,
UBYTE* name */);
short removeInputHandler(/* IOSTDREQ* */);
/* intuistuff.c */
BORDER * gimmeBorder(/* void** memheadptr, SHORT xsize, SHORT ysize */);
IMAGE * gimmeImage(/* void** memheadptr, SHORT depth, SHORT width,
SHORT height */);
ITEXT * gimmeIntuiText(/* void** memheadptr, UBYTE *s, TEXTATTR*,
SHORT optwidth */);
/* keyboard.c */
SHORT deadKeyConvert(/* IMSG, UBYTE* buf, USHORT size, KEYMAP* */);
/* menu.c */
MENU * gimmeMenu(/* void** memheadptr, SHORT left, SHORT width,
UBYTE* name, ULONG flags */);
MENUITEM * gimmeMenuItem(/* void** memheadptr, SHORT left, SHORT width,
SHORT height, BYTE command, UBYTE* name,
TEXTATTR* textattr, ULONG flags */);
/* menustuff.c (menustuff.h) */
ULONG addMenuItem(/* MENU*, MENUITEM*, SHORT positem, SHORT possub,
SHORT numitem, ULONG myflags */);
MENUITEM * removeMenuItem(/* MENU *, MENUITEM*, SHORT positem, SHORT possub,
SHORT numitem, ULONG myflags */);
ULONG addMenu(/* MENU** menuptr, MENU*, SHORT posmenu,
SHORT nummenu, ULONG myflags */);
MENU * removeMenu(/* MENU** menuptr, MENU*, SHORT posmenu,
SHORT nummenu, ULONG myflags */);
short adjustMenuLefts(/* MENU* menu, MENU* stop, SHORT leftedge,
ULONG myflags */);
short adjustMenuItems(/* ITEM* item, ITEM* stop, SHORT topedge,
SHORT meposition, ULONG myflags */);
/* memchain.c */
void * chainAllocMem(/* void** memheadptr, ULONG size, ULONG flags */);
VOID chainFreeMem(/* void* memhead */);
short linkChainMem(/* void** memheadptr, void* memhead */);
short pluckChainMem(/* void** memheadptr, void* memory */);
/* message.c */
MESSAGE * gimmeMessage(/* ULONG size, MSGPORT* */);
short getRidOfMessage(/* MESSAGE* */);
/* picture.c (picture.h) */
PICTURE * gimmePicture(/* UBYTE* filename, ULONG myflags */);
short getRidOfPicture(/* PICTURE* */);
short positionPicture(/* RASTPORT*, ULONG myflags, PICTURE*,
SHORT minterm, SHORT x, SHORT y */);
short usePictureColors(/* PICTURE*, SCREEN* */);
/* postext.c (postext.h) */
SHORT positionText(/* RASTPORT*, ULONG myflags, UBYTE* s, LONG num,
SHORT x, SHORT y */);
/* requester.c (requester.h) */
SHORT gimmeAutoRequest(/* WINDOW*, UBYTE* string, TEXTATTR* */);
REQUESTER * gimmeRequester(/* void** memheadptr, SHORT left, SHORT top,
SHORT width, SHORT height, UBYTE backfill,
GADGET* gplist, UBYTE *s, TEXTATTR*, ULONG flags */);
/* screen.c */
NEWSCREEN * gimmeNewScreen(/* ULONG modes, ULONG type, SHORT depth,
UBYTE* title, TEXTATTR* */);
short getRidOfNewScreen(/* NEWSCREEN* */);
SCREEN * gimmeScreen(/* NEWWINDOW*, WINDOW** winptr, SHORT depth,
ULONG IDCMPflags, ULONG winflags */);
SCREEN * gimmeScreenLazy(/* NEWWINDOW*, WINDOW** winptr, SHORT depth */);
short getRidOfScreen(/* SCREEN*, WINDOW* */);
short lowerScreen(/* SCREEN*, SHORT toheight */);
short raiseScreen(/* SCREEN*, SHORT toheight */);
/* scrollbar.c (scrollbar.h) */
GADGET * gimmeFullScrollBar(/* WINDOW*, USHORT id, ULONG propflags,
ULONG myflags, USHORT id1, USHORT id2 */);
GADGET * gimmeScrollBar(/* WINDOW*, USHORT id, ULONG propflags,
ULONG myflags */);
GADGET * gimmeOneScroll(/* WINDOW*, USHORT id, ULONG dirflags,
ULONG myflags */);
/* sound.c (sound.h) */
SOUND * gimmeSound(/* UBYTE* filename */);
short getRidOfSound(/* SOUND* */);
/* stdstuff.c (stdstuff.h) */
ULONG gimmeStdStuff(/* ULONG myflags, SHORT rev */);
ULONG getRidOfStdStuff(/* ULONG myflags */);
/* subtinit.c */
short initSubTasker(/* SHORT*, MSGPORT** */);
short doneSubTasker(/* SHORT*, MSGPORT** */);
SHORT handleSpecialSubTaskMsg(/* SHORT*, MSGPORT** */);
short doPrintf(/* MSGPORT* dosport, MSGPORT* replyport, UBYTE* s,
LONG p1, LONG p2, double p3, double p4 */);
/* subtask.c */
TASK * gimmeSubTask(/* SHORT*, MSGPORT**, LONG stacksize, LONG datasize,
MSGPORT** myportptr */);
VOID undoGimmeSubTask(/* TASK* */);
short startSubTask(/* TASK*, char* name, BYTE pri,
void (*initialpc)(), void (*finalpc)() */);
VOID killSubTask(/* SHORT*, MSGPORT**, TASK* */);
/* timer.c */
TIMEREQ * accessTimer(/* ULONG unit, MSGPORT** msgportptr */);
LONG releaseTimer(/* TIMEREQ* master, MSGPORT* saveport */);
TIMEREQ * gimmeTimeRequest(/* TIMEREQ* master */);
LONG getRidOfTimeRequest(/* TIMEREQ* slave */);
/* timerstuff.c */
LONG timeDelay(/* ULONG secs, ULONG micros, ULONG unit, TIMEREQ* */);
TIMEREQ * timeDelayAsync(/* ULONG secs, ULONG micros, ULONG unit,
TIMEREQ* */);
LONG waitTimer(/* TIMEREQ* */);
LONG killTimeDelay(/* TIMEREQ* */);
short getSysTime(/* ULONG* secsptr, ULONG* microsptr, TIMEREQ* */);
short setSysTime(/* ULONG secs, ULONG micros, TIMEREQ* */);
/* window.c (window.h) */
NEWWINDOW * gimmeNewWindow(/* UBYTE* title, SCREEN*, SHORT left, SHORT top,
ULONG IDCMPflags, ULONG flags */);
short getRidOfNewWindow(/* NEWWINDOW* */);
WINDOW * gimmeWindow(/* NEWWINDOW*, SHORT depth, SHORT width,
SHORT height */);
short getRidOfWindow(/* WINDOW* */);
/* undefine the gimshortdefs.h defines to avoid possible redefined symbols */
#include "gimmelib/gimNOshortdefs.h"
#endif !GIMMELIB_FUNCTIONS_H
SHAR_EOF
cat << \SHAR_EOF > gimshortdefs.h
#ifndef GIMMELIB_SHORT_DEFS_H
#define GIMMELIB_SHORT_DEFS_H
/* some short-form defines
* (should be typedefs, but then you can't undefine them)
#define SCREEN struct Screen
#define WINDOW struct Window
#define NEWSCREEN struct NewScreen
#define NEWWINDOW struct NewWindow
#define BITMAP struct BitMap
#define RASTPORT struct RastPort
#define TEXTATTR struct TextAttr
#define REQUESTER struct Requester
#define GADGET struct Gadget
#define BORDER struct Border
#define STRINGINFO struct StringInfo
#define PROPINFO struct PropInfo
#define IMSG struct IntuiMessage
#define ITEXT struct IntuiText
#define IMAGE struct Image
#define MSGPORT struct MsgPort
#define MESSAGE struct Message
#define TASK struct Task
#define RASINFO struct RasInfo
#define TEXTFONT struct TextFont
#define TIMEVAL struct timeval
#define TIMEREQ struct timerequest
#define CPRLIST struct cprlist
#define AREAINFO struct AreaInfo
#define TMPRAS struct TmpRas
#define IOREQUEST struct IORequest
#define IOSTDREQ struct IOStdReq
#define MENU struct Menu
#define MENUITEM struct MenuItem
#ifdef GIMMELIB_NO_SHORT_DEFS_H
#undef GIMMELIB_NO_SHORT_DEFS_H
#endif GIMMELIB_NO_SHORT_DEFS_H
#endif !GIMMELIB_SHORT_DEFS_H
SHAR_EOF
cat << \SHAR_EOF > globals.h
#ifndef GIMMELIB_GIM_GLOBALS_H
#define GIMMELIB_GIM_GLOBALS_H
#ifndef I_AM_GIM_GLOBALS
extern struct TextAttr gimMyFont; /* topaz 80 font */
extern UBYTE *gimAutReqPostext;
extern UBYTE *gimAutReqNegtext;
extern USHORT gimDataOneScrollUp[];
extern USHORT gimDataOneScrollDown[];
extern USHORT gimDataOneScrollLeft[];
extern USHORT gimDataOneScrollRight[];
#endif !I_AM_GIM_GLOBALS
#endif !GIMMELIB_GIM_GLOBALS_H
SHAR_EOF
cat << \SHAR_EOF > graph.h
#ifndef GIMMELIB_GRAPH_H
#define GIMMELIB_GRAPH_H
#include "gimmelib/postext.h"
typedef struct _gim_nax {
SHORT origin, size; /* offset of origin and axis size in pixels */
SHORT low; /* coord corresponding to origin */
SHORT amt; /* modified by newgraph flags */
SHORT initpt; /* coord of initial point (see newgraph flags) */
SHORT step; /* step size for even labelling, 0 for fancy */
SHORT labnum, labdenom; /* fraction for label scaling */
} NEWAXIS;
typedef struct _gim_axis {
SHORT origin, size; /* offset of origin and axis size in pixels */
SHORT low; /* coord corresponding to origin */
SHORT high; /* coord corresponding to high end of axis */
SHORT scale; /* scale of axis: -ve means coords per pixel */
SHORT usesize; /* actual size of axis used in pixels */
SHORT lastdata; /* last coord added to graph */
SHORT lastoff; /* offset of last coord in pixels */
SHORT step; /* step size for even labelling, 0 for fancy */
SHORT labnum, labdenom; /* fraction for label scaling */
SHORT flow, fhigh; /* first low and high - for graph reinit */
SHORT fdata, foff; /* first coord and offset - for graph reinit */
} AXIS;
typedef struct _gim_newgr {
UBYTE *title, *xtitle, *ytitle; /* graph and axes titles */
struct TextAttr *titleta, *xta, *yta; /* text attributes for titles */
BYTE FPen, BPen, AxesPen, TitlePen; /* colours for primary parts */
ULONG flags, ctlflags; /* all-important flags */
NEWAXIS X, Y; /* actual new-axis structs */
struct RastPort *rp; /* RastPort to be copied, or NULL */
} NEWGRAPH;
/* flags for NEWGRAPH.flags (and GRAPH.flags) */
#define GGR_DELTAX (1L << 0)
#define GGR_LINETOX (1L << 1)
#define GGR_FILLTOX (1L << 2)
#define GGR_BLACKTOX (1L << 3)
#define GGR_X_MAX (1L << 8) /* default */
#define GGR_X_INTERVALS (1L << 9)
#define GGR_X_SPACING (1L << 10) /* auto-spacing based on size */
#define GGR_X_INTEGRAL (1L << 11)
#define GGR_X_FLAGS 0x0000FFFFL
#define GGR_DELTAY (1L << 16)
#define GGR_LINETOY (1L << 17)
#define GGR_FILLTOY (1L << 18)
#define GGR_BLACKTOY (1L << 19)
#define GGR_Y_MAX (1L << 24) /* default */
#define GGR_Y_INTERVALS (1L << 25)
#define GGR_Y_SPACING (1L << 26)
#define GGR_Y_INTEGRAL (1L << 27)
#define GGR_Y_FLAGS 0xFFFF0000L
#define GGR_DEFAULT 0L
/* control flags for NEWGRAPH.ctlflags (and GRAPH.ctlflags) */
#define GGR_INITORIGIN (1L << 0)
#define GGR_INITPOINT (1L << 1)
#define GGR_NOCLEARSTART (1L << 8)
#define GGR_NOCONNECTLINE (1L << 9)
#define GGR_NOLABELS (1L << 10)
#define GGR_CLEARONEND (1L << 15)
#define GGR_HIRES (1L << 24)
#define GGR_INTERLACE (1L << 25)
#define GGR_CTL_DEFAULT 0L
/* explanation of drawing flags:
* DELTA: coord of new point is relative to coord of previous point
* LINETO: draw a line from the point to the respective axis
* FILLTO: area fill the trapezoid from previous point to resp. axis
* BLACKTO: like LINETO but using background colour (useful with FILLTO)
/* explanation of newaxis-specific flags:
* MAX: newaxis.amt specifies max coord on initial graph
* INTERVALS: newaxis.amt specifies difference between low and high coords
* SPACING: newaxis.amt specifies the scale to be applied (+ve or -ve)
* INTEGRAL: force integer number of pixels/coord or coords/pixel
/* explanation of control flags:
* INITORIGIN: use origin as initial point
* INITPOINT: use point specified in nexaxes as initial point
* (otherwise newaxis.initpt is ignored)
* NOCLEARSTART: don't clear the rastport when initializing graph
* (useful if several graphs on same "rastport")
* NOLABELS: don't draw titles, axes and labels for me ever (I'll do it)
* NOCONNECTLINE: don't connect points in graph by a line
* CLEARONEND: clear the graph when doing getRidOfGraph
* HIRES: graph to be displayed on HIRES screen
* INTERLACE: graph to be displayed on INTERLACE screen
* (these two are useful for determining aspect ratios)
typedef struct _gim_graph {
struct RastPort rp; /* actual RastPort struct */
ULONG flags; /* flags, as in newgraph */
ULONG ctlflags; /* control flags, as in newgraph */
UBYTE *title, *xtitle, *ytitle; /* graph and axes titles */
struct TextFont *titletf, *xtf, *ytf; /* fonts for titles */
struct TextFont *xlabtf, *ylabtf; /* fonts for axes' labels */
BYTE FPen, BPen, AxesPen, TitlePen; /* colours for primary parts */
BYTE XlabPen, YlabPen, XtitlePen, YtitlePen; /* secondary colours */
SHORT points; /* number of points added so far */
AXIS X, Y; /* actual axis structs */
void *memhead; /* memory-chain for this graph */
struct _gim_graph *next; /* link to next graph (future use) */
} GRAPH;
/* INTERNAL scaling factor used by graph routines for intermediate results */
#define SCALE 6
/* flags for graphWriteLabel() */
#define GWL_XAXIS (1L << 20) /* label the x-axis (don't set yaxis) */
#define GWL_YAXIS (1L << 21) /* label the y-axis (don't set xaxis) */
#define GWL_CLEAR_ONLY (1L << 22) /* clear the previous labels only! */
#define GWL_CLEAR_OLD (1L << 23) /* clear previous then draw labels */
#define GWL_RESERVED (0x000fffffL) /* reserved for internal use only!! */
#define GWL_DEFAULT (AWL_YAXIS)
#endif !GIMMELIB_GRAPH_H
SHAR_EOF
cat << \SHAR_EOF > intuistuff.h
#ifndef GIMMELIB_INTUISTUFF_H
#define GIMMELIB_INTUISTUFF_H
/* note the image size IN BYTES returned by this macro is a ULONG */
#define GIM_IMAGESIZE(depth, width, height) \
( (ULONG)((width + 15) >> 4) * height * (sizeof(SHORT) * depth) )
#endif !GIMMELIB_INTUISTUFF_H
SHAR_EOF
cat << \SHAR_EOF > macros.h
#ifndef GIMMELIB_MACROS_H
#define GIMMELIB_MACROS_H
#ifdef GIM_BUILTIN
#ifdef AZTEC_C
#define strcpy _BUILTIN_strcpy
#define strcmp _BUILTIN_strcmp
#define strlen _BUILTIN_strlen
#endif AZTEC_C
#endif GIM_BUILTIN
/* WSL-type guess-endguess construct (for internal use only) */
#define GUESS do {
#define QUIF( cond ) if( cond ) break;
#define ENDGUESS } while( 0 );
#endif !GIMMELIB_MACROS_H
SHAR_EOF
cat << \SHAR_EOF > menustuff.h
#ifndef GIMMELIB_MENUSTUFF_H
#define GIMMELIB_MENUSTUFF_H
/* flags for various menu routines (mutually exclusive across routines) */
/* note: GMI_APPEAREND and GIM_SHUFFLE do not make much sense together */
#define GMI_ADDSUBITEM (1L << 1) /* add this item as a subitem */
#define GMI_FIXUP (1L << 2) /* modify new item heights */
#define GMI_SHUFFLE (1L << 3) /* modify existing item heights */
#define GMI_APPEAREND (1L << 4) /* visually appear at end */
#define GMI_FIXUPME (1L << 5) /* modify new mutual excludes */
#define GMI_SHUFFLEME (1L << 6) /* modify existing mutual exclude */
#define GMI_REMSUBITEM (1L << 14) /* remove this item as a subitem */
#define GMI_ADDRONLY (1L << 15) /* just find (sub)item address */
#define GMI_RESERVED (0xfff00000L) /* reserved for internal use */
#define GMI_DEFAULT 0L
#endif !GIMMELIB_MENUSTUFF_H
SHAR_EOF
cat << \SHAR_EOF > minterm.h
#ifndef GIMMELIB_MINTERM_H
#define GIMMELIB_MINTERM_H
#define GIM_MINTERM_COPY 0x0c0 /* copy source; ignore dest */
#define GIM_MINTERM_DEST 0x0a0 /* keep dest as is */
#define GIM_MINTERM_CLEAR 0x000 /* clear dest block */
#define GIM_MINTERM_FILL 0x0f0 /* fill dest block */
#define GIM_MINTERM_OR 0x0e0 /* mix source and dest */
#define GIM_MINTERM_MIX GIM_MINTERM_OR
#define GIM_MINTERM_UNMIX 0x020 /* remove source pattern from dest */
#define GIM_MINTERM_XOR 0x060 /* xor source and dest */
#define GIM_MINTERM_INV_SRC 0x030 /* invert source */
#define GIM_MINTERM_INV_DEST 0x030 /* invert dest */
/* 4 important bits in minterm are as follows:
* 7 6 5 4
* | | | -> ~src & ~dest
* | | ----> ~src & dest
* | -------> src & ~dest
* ----------> src & dest
*/
#endif !GIMMELIB_MINTERM_H
SHAR_EOF
cat << \SHAR_EOF > picture.h
#ifndef GIMMELIB_PICTURE_H
#define GIMMELIB_PICTURE_H
#include "gimmelib/bitplane.h"
#ifdef I_AM_PICTURE
#define Mk(a,b,c,d) (((ULONG)(a)<<24) | ((ULONG)(b)<<16) \
| ((ULONG)(c)<<8) | (ULONG)(d))
#define EVEN(p) ((p+1) & ~1)
#define ID_FORM Mk('F', 'O', 'R', 'M')
#define ID_ILBM Mk('I', 'L', 'B', 'M')
#define ID_BMHD Mk('B', 'M', 'H', 'D')
#define ID_CMAP Mk('C', 'M', 'A', 'P')
#define ID_DEST Mk('D', 'E', 'S', 'T')
#define ID_SPRT Mk('S', 'P', 'R', 'T')
#define ID_CAMG Mk('C', 'A', 'M', 'G')
#define ID_CRNG Mk('C', 'R', 'N', 'G')
#define ID_CCRT Mk('C', 'C', 'R', 'T')
#define ID_BODY Mk('B', 'O', 'D', 'Y')
#endif I_AM_PICTURE
typedef UBYTE Masking;
#define mskNone 0
#define mskHasMask 1
#define mskHasTranCol 2
#define mskLasso 3
typedef UBYTE Compression;
#define cmpNone 0
#define cmpByteRun1 1
typedef struct _gim_bmh {
UWORD w,h; /* raster width, height */
WORD x,y; /* pixel position for this image */
UBYTE nPlanes; /* number of bit planes */
Masking masking;
Compression compression;
UBYTE pad1; /* unused */
UWORD transparentColour; /* transparent colour number */
UBYTE xAspect, yAspect; /* pixel aspect, a ratio width:height */
WORD pageWidth, pageHeight; /* source page size in pixels */
} BitMapHeader;
typedef struct {
UBYTE red,green,blue;
} ColourRegister;
typedef struct {
ColourRegister *luts; /* pointer to look up table */
WORD numLuts; /* number of luts entries */
} LutTable;
typedef struct {
WORD x,y; /* relative coordinates */
} Point2D;
typedef struct {
UBYTE depth; /* # of bitplanes in original source */
UBYTE pad1; /* unused... put zero here */
UWORD planePick; /* how to scatter src into dest */
UWORD planeOnOff; /* default bitplane data for above */
UWORD planeMask; /* which bitplanes to store into */
} DestMerge;
typedef UWORD SpritePrecedence; /* relative precedence, 0 is highest */
typedef struct _gim_pic {
BitMapHeader bmh; /* info for this bitmap */
SHORT xsize; /* actual width in pixels */
void *memhead; /* memory-chain allocated for this picture */
struct BitMap *bm; /* pointer to bitmap struct */
struct ColorMap colormap; /* actual instance; .ColorTable -> colours */
ULONG myflags; /* flags about the bitmap */
struct _gim_pic *next; /* next picture (for future use) */
} PICTURE;
/***
flags for gimmePicture()
==> see flags for gimmeBitPlanes() in <gimmelib/bitplane.h>
***/
#endif !GIMMELIB_PICTURE_H
SHAR_EOF
cat << \SHAR_EOF > postext.h
#ifndef GIMMELIB_POSTEXT_H
#define GIMMELIB_POSTEXT_H
/* Flags to be used in the "myflags" parameter to the
* positionText() routine, and perhaps other routines.
* Choose only one x-flag and only one y-flag and or them together.
#define GPT_XLEFT (1L << 0) /* default for positionText() */
#define GPT_XRIGHT (1L << 1)
#define GPT_XCENTRE (1L << 2)
#define GPT_XFLAGS (0x000000FFL)
#define GPT_YTOP (1L << 8)
#define GPT_YBOTTOM (1L << 9)
#define GPT_YCENTRE (1L << 10)
#define GPT_YCENTREBASE (1L << 11)
#define GPT_YBASELINE (1L << 12) /* default for positionText() */
#define GPT_YFLAGS (0x0000FF00L)
/* alternatively you can use the following for defaults */
#define GPT_XDEFAULT 0L
#define GPT_YDEFAULT 0L
#define GPT_DEFAULT 0L /* easy way to get default x,y pos */
/* special control flags for positionText() */
#define GPT_YUPWARDS (1L << 16)
#define GPT_YDOWNWARDS (1L << 17)
#define GPT_XTHICKEN (1L << 18)
/* special control flags for gimmeBoolGadget() */
#define GPT_FULLWIDTH (1L << 28)
#define GPT_CTLFLAGS (0x0FFFF0000L)
#endif !GIMMELIB_POSTEXT_H
SHAR_EOF
cat << \SHAR_EOF > requester.h
#ifndef GIMMELIB_REQUESTER_H
#define GIMMELIB_REQUESTER_H
#ifdef I_AM_REQUESTER
#define GAR_DUMMY_TEXT "WHY AM I HERE?"
#define GAR_BORDER_WIDTH 4 /* number of chars for border width */
#define GAR_HEIGHT 6 /* number of char lines */
#endif I_AM_REQUESTER
/* original positive and negative text for gimmeAutoRequest() */
#define GAR_POSTEXT "YES"
#define GAR_NEGTEXT "NO"
#ifndef I_AM_GIM_GLOBALS
extern UBYTE *gimAutReqPostext;
extern UBYTE *gimAutReqNegtext;
#endif !I_AM_GIM_GLOBALS
#endif !GIMMELIB_REQUESTER_H
SHAR_EOF
cat << \SHAR_EOF > scrollbar.h
#ifndef GIMMELIB_SCROLLBAR_H
#define GIMMELIB_SCROLLBAR_H
/* flags for gimmeOneScroll() */
#define GOS_TOP (1L << 0)
#define GOS_BOT (1L << 1) /* default if FREEVERT */
#define GOS_LEFT (1L << 2)
#define GOS_RIGHT (1L << 3) /* default if FREEHORIZ */
/* dimensions of image data for one-scroll gadgets */
#define GOS_BITWIDTH 16
#define GOS_BITHEIGHT 9
#define GOS_BITDEPTH 1
/* dimensions of Intuition sizing gadget */
#define GIM_SZWIDTH 16
#define GIM_SZHEIGHT 9
#define GIM_SZDEPTH 1
#define GIM_DFLT_TBHEIGHT 10 /* default Intuition titlebar height */
#ifndef I_AM_GIM_GLOBALS
extern USHORT gimDataOneScrollUp[];
extern USHORT gimDataOneScrollDown[];
extern USHORT gimDataOneScrollLeft[];
extern USHORT gimDataOneScrollRight[];
#endif !I_AM_GIM_GLOBALS
/* flags for gimmeScrollBar(), gimmeFullScrollBar() */
#define GSB_DEFAULT (0L)
#define GSB_ONE_SCROLL (1L << 0) /* gimmescrollbar with one-scrolls */
#define GSB_NO_TITLEBAR (1L << 1)
#endif !GIMMELIB_SCROLLBAR_H
SHAR_EOF
cat << \SHAR_EOF > sound.h
#ifndef GIMMELIB_SOUND_H
#define GIMMELIB_SOUND_H
#ifdef I_AM_SOUND
#define Mk(a,b,c,d) (((ULONG)(a)<<24) | ((ULONG)(b)<<16) \
| ((ULONG)(c)<<8) | (ULONG)(d))
#define EVEN(p) ((p+1) & ~1)
#define ID_FORM Mk('F', 'O', 'R', 'M')
#define ID_8SVX Mk('8', 'S', 'V', 'X')
#define ID_VHDR Mk('V', 'H', 'D', 'R')
#define ID_NAME Mk('N', 'A', 'M', 'E')
#define ID_COPY Mk('(', 'c', ')', ' ')
#define ID_AUTH Mk('A', 'U', 'T', 'H')
#define ID_ANNO Mk('A', 'N', 'N', 'O')
#define ID_ATAK Mk('A', 'T', 'A', 'K')
#define ID_RLSE Mk('R', 'L', 'S', 'E')
#define ID_BODY Mk('B', 'O', 'D', 'Y')
#endif I_AM_SOUND
typedef LONG Fixed; /* fixed point value 16bits.16bits */
#define Unity 0x10000L /* Unity = Fixed 1.0 = maximum volume */
#define sCmpNone 0 /* not compressed */
#define sCmpFibDelta 1 /* Fibonacci delta encoding */
typedef struct _gim_v8h {
ULONG oneShotHiSamples; /* # samples in the high octave 1-shot part */
LONG repeatHiSamples; /* # samples in the high octave repeat part */
LONG samplesPerHiCycle; /* # samples/cycle in high octave, else 0 */
UWORD samplesPerSec; /* data sampling rate */
UBYTE ctOctave; /* # octaves of waveform */
UBYTE sCompression; /* data compression technique used */
Fixed volume; /* playback volume from 0 to Unity */
} Voice8Header;
typedef struct {
UWORD duration; /* segment duration in milliseconds, >0 */
Fixed dest; /* destination volume factor */
} EGPoint;
typedef struct _gim_snd {
Voice8Header vh; /* info for this sound */
BYTE *body; /* pointer to body data */
LONG bodylen; /* actual body length from IFF file */
void *memhead; /* memory-chain allocated for this sound */
struct _gim_snd *next; /* next sound (for future use) */
} SOUND;
#endif !GIMMELIB_SOUND_H
SHAR_EOF
cat << \SHAR_EOF > stdstuff.h
#ifndef GIMMELIB_STDSTUFF_H
#define GIMMELIB_STDSTUFF_H
#ifndef I_AM_STDSTUFF
extern struct IntuitionBase *IntuitionBase;
extern struct GfxBase *GfxBase;
extern struct DiskfontBase *DiskfontBase;
extern struct Device *TimerBase;
extern struct MsgPort *gimTimerPort;
extern struct timerequest *gimMasterTR;
extern struct timerequest *gimSlaveTR;
extern struct MsgPort *gimMainPort;
extern SHORT gimSubTasks;
extern void *gimChainMem;
#endif !I_AM_STDSTUFF
/* handy revision number for gimmeStdStuff() */
#define GSS_REVISION 33
/* flags for gimmeStdStuff() */
#define GSS_INTUITION (1L << 0) /* IntuitionBase */
#define GSS_GFX (1L << 1) /* GfxBase */
#define GSS_DISKFONT (1L << 2) /* DiskfontBase */
#define GSS_TIMER (1L << 3) /* timer.device and TimerBase */
#define GSS_SUBTASK (1L << 4) /* gimme.lib subtask mechanism */
#define GSS_MEMCHAIN (1L << 15) /* memory chain */
#define GSS_OPENALL (0x000fffffL) /* open positive things */
/* special bits for gimmeStdStuff() */
#define GSS_DISABLEABORT (1L << 20) /* disable ^C */
#define GSS_CLOSEWBENCH (1L << 21) /* try to close workbench screen */
/* control flags for getRidOfStdStuff() */
#define GSS_RUTHLESS (1L << 25) /* ignore errors when closing */
#define GSS_ENABLEABORT (1L << 30) /* enable ^C */
#define GSS_OPENWBENCH (1L << 29) /* try to open workbench screen */
#define GSS_CLOSEALL (GSS_OPENALL) /* try closing all; stop on error */
#define GSS_KILLALL (GSS_CLOSEALL | GSS_RUTHLESS)
#endif !GIMMELIB_STDSTUFF_H
SHAR_EOF
cat << \SHAR_EOF > window.h
#ifndef GIMMELIB_WINDOW_H
#define GIMMELIB_WINDOW_H
#ifdef I_AM_WINDOW
#define GNW_DETAIL_PEN -1 /* use default */
#define GNW_BLOCK_PEN -1 /* use default */
#define GNW_MIN_WIDTH 30
#define GNW_MIN_HEIGHT 20
#endif I_AM_WINDOW
/* these IDCMP flags can be or'd into the window types below */
#define IDCMP_SYS_GADG (CLOSEWINDOW | NEWSIZE)
#define IDCMP_MOUSE (MOUSEMOVE)
#define IDCMP_GADGETS (GADGETUP | GADGETDOWN)
/* mutually exclusive types of window IDCMP */
#define IDCMP_SIMPLE (IDCMP_SYS_GADG | ACTIVEWINDOW | REFRESHWINDOW)
#define IDCMP_SMART (IDCMP_SIMPLE)
#define IDCMP_VSMART ((IDCMP_SMART & ~REFRESHWINDOW))
#define IDCMP_MENUWIN (IDCMP_VSMART | MENUPICK)
/* these flags can be or'd into the window types below */
#define FLAGS_SYS_GADG (WINDOWCLOSE | WINDOWDRAG | WINDOWDEPTH | WINDOWSIZING)
#define FLAGS_MOUSE (REPORTMOUSE)
#define FLAGS_GADGETS (SIZEBRIGHT | SIZEBBOTTOM)
/* mutually exclusive types of window flags */
#define FLAGS_SIMPLE (FLAGS_SYS_GADG | SIMPLE_REFRESH | RMBTRAP)
#define FLAGS_SMART ((FLAGS_SIMPLE & ~REFRESHBITS) | SMART_REFRESH)
#define FLAGS_VSMART (FLAGS_SMART | NOCAREREFRESH)
#define FLAGS_MENUWIN ((FLAGS_VSMART & ~RMBTRAP))
/* defaults use by some gimme Window/Screen routines */
#define IDCMP_DEFAULT ((IDCMP_MENUWIN & ~NEWSIZE) | MENUPICK)
#define FLAGS_DEFAULT ((FLAGS_MENUWIN & ~FLAGS_SYS_GADG) | WINDOWCLOSE \
| BACKDROP | BORDERLESS | ACTIVATE)
#endif !GIMMELIB_WINDOW_H
SHAR_EOF
# End of shell archive
exit 0
--
Bob Page, U of Lowell CS Dept. page@swan.ulowell.edu ulowell!page
Have five nice days.